package br.com.ridea.pegadacultural.facade;

import java.util.ArrayList;
import java.util.List;

import br.com.ridea.pegadacultural.abracts.ApplicationException;
import br.com.ridea.pegadacultural.abracts.GenericDAO;
import br.com.ridea.pegadacultural.dao.ExperienciaDAOService;
import br.com.ridea.pegadacultural.dto.ExperienciaDTO;
import br.com.ridea.pegadacultural.implementation.ExperienciaDAOServiceImpl;
import br.com.ridea.pegadacultural.model.Experiencia;

public class ExperienciaFacade {


	public static void inserir(Experiencia experiencia){
		ExperienciaDAOService dao = new ExperienciaDAOServiceImpl();
		try {
			GenericDAO.initTransaction();

			dao.salvar(experiencia);

			GenericDAO.commitTransaction();
		} catch (ApplicationException e) {
			GenericDAO.rollback();
			e.printStackTrace();
		}

	}

	public static void alterar(Experiencia experiencia){
		ExperienciaDAOService dao = new ExperienciaDAOServiceImpl();
		try {
			GenericDAO.initTransaction();

			dao.alterar(experiencia);

			GenericDAO.commitTransaction();
		} catch (ApplicationException e) {
			GenericDAO.rollback();
			e.printStackTrace();
		}

	}

	public static Experiencia obter(Long codExperiencia){
		ExperienciaDAOService dao = new ExperienciaDAOServiceImpl();
		try {
			GenericDAO.currentSession();

			dao.salvar(new Experiencia());

			GenericDAO.closeSession();
			return new Experiencia();
		} catch (ApplicationException e) {
			GenericDAO.rollback();
			e.printStackTrace();
		}
		return null;
	}

	public static List<ExperienciaDTO> listar(){
		ExperienciaDAOService dao = new ExperienciaDAOServiceImpl();
		try {
			GenericDAO.currentSession();

			//dao.salvar(new Experiencia());

			GenericDAO.closeSession();
			List<ExperienciaDTO> experienciasDTO = new ArrayList<ExperienciaDTO>();
			List<Experiencia> experiencias = new ArrayList<Experiencia>();

			ExperienciaDTO experienciaDTO = new ExperienciaDTO();
			experienciaDTO.setCodigo("1");
			experienciaDTO.setNome("teste mock");
			experienciaDTO.setEventoPrivado("1");
			experienciaDTO.setDataHoraInicio("11/04/1993 11:20");
			experienciaDTO.setDataHoraTermino("25/04/1993 23:30");
			
			experienciasDTO.add(experienciaDTO);
			
			for(Experiencia experiencia : experiencias){
				experienciasDTO.add(experiencia.getExperienciaDTO());
			}

			return experienciasDTO;
		} catch (/*Application*/Exception e) {
			GenericDAO.rollback();
			e.printStackTrace();
		}
		return null;
	}


}
